package com.yby6.system.vo;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @program: yangbuyi-rbac
 * @ClassName: MenuTreeVo
 * @create: 2021-05-22 21:07
 * @author: Yang Shuai
 * @since： JDK1.8
 * @MenuTreeVo: 菜单树$
 **/
@Data
public class MenuTreeVo implements Serializable {

	/**
	 * 菜单ID
	 */
	private Long menuId;

	/**
	 * 菜单状态（1显示 0隐藏）
	 */
	private Integer visible;

	/**
	 * 菜单名称
	 */
	@NotBlank(message = "菜单名称不能为空")
	@Size(min = 0, max = 50, message = "菜单名称长度不能超过50个字符")
	private String menuName;

	/**
	 * 父菜单ID
	 */
	private Long parentId;

	/**
	 * 显示顺序
	 */
	@NotBlank(message = "显示顺序不能为空")
	private Integer orderNum;

	/**
	 * 路由地址
	 */
	@Size(min = 0, max = 200, message = "路由地址不能超过200个字符")
	private String routerPath;

	/**
	 * 组件路径
	 */
	@Size(min = 0, max = 200, message = "组件路径不能超过255个字符")
	private String componentUrl;

	/**
	 * 是否为外链（0是 1否）
	 */
	private Integer isFrame;

	/**
	 * 是否缓存（0缓存 1不缓存）
	 */
	private Integer isCache;

	/**
	 * 菜单类型（1目录 2菜单 3权限）
	 */
	@NotBlank(message = "菜单类型不能为空")
	private Integer menuType;

	/**
	 * 菜单状态（1正常 0停用）
	 */
	private Integer status;

	/**
	 * 权限标识
	 */
	private String permission;

	/**
	 * 菜单图标
	 */
	private String icon;

	/**
	 * 创建者
	 */
	private String createBy;

	/**
	 * 创建时间
	 */
	private Date createTime;

	/**
	 * 更新者
	 */
	private String updateBy;

	/**
	 * 更新时间
	 */
	private Date updateTime;

	/**
	 * 菜单树子菜单
	 */
	private List<MenuTreeVo> children;

}
